using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Data;
using ShopPowerTemplate.Entities;

namespace ShopPowerTemplate.Services
{
    public partial interface IShippingCostService : IDisposable
    {
        int Add(ShippingCost team);
        void Change(ShippingCost team);
		void Remove(int id);
        void Remove(ShippingCost team);
        ShippingCost Find(int id);	
		List<ShippingCost> FindAll();		
		List<ShippingCost> Search(string searchValue);
        List<ShippingCost> Search(string searchValue, int pageIndex, int pageSize);
        List<ShippingCost> Search(string searchValue, string orderBy);
        List<ShippingCost> Search(string searchValue, string orderBy, int pageIndex, int pageSize);
        List<ShippingCost> Search(string searchValue, string orderBy = "", bool ascending = true, int pageIndex = 0, int pageSize = 10);
		List<ShippingCost> Search(Expression<Func<ShippingCost, bool>> searchCriteria, string orderBy = "", bool ascending = true, int pageIndex = 0, int pageSize=10);
        int SearchCount(string searchValue);
		List<ShippingCost> FindAvailableShippingCostList<TKey>(List<ShippingCost> notAvailableList, string searchValue, System.Linq.Expressions.Expression<Func<ShippingCost, TKey>> orderBy, bool ascending, int pageIndex, int pageSize);
        int FindAvailableShippingCostListCount(List<ShippingCost> notAvailableList, string searchValue);
		
		// Navigation properties management (one-to-many) / (many-to-many)
		
    }
}
